
package combat.dudes.protocol.interfaces;

import java.util.ArrayList;

import combat.dudes.protocol.data.RemoteList;


public interface SimulationInt {

	static Boolean isRunning = false;
	public Boolean getIsRunning();
	public void setIsRunning(Boolean isRunning);

	static Double simSpeed = 0.0;
	public Double getSimSpeed();
	public void setSimSpeed(Double simSpeed);

	static ArrayList<TeamInt> teams = null;
	public ArrayList<TeamInt> getTeams();
	public RemoteList getTeams_Remote(); // ArrayList<TeamInt>
	public void setTeams(ArrayList<TeamInt> teams);
	// Helpers
	public void addTeam(TeamInt team);
	public void removeTeam(TeamInt team);

	// ------------------------------------------

	public void startSimulation();
	public void stopSimulation();
	public void pauseSimulation();

	public UserInt userLogOn(String userName);
	public Object userLogOn_Remote(String userName); // UserInt

	public TeamInt findTeamOfUser(UserInt user);
	public Object findTeamOfUser_Remote(UserInt user); // TeamInt

	public TeamInt switchTeam(UserInt user, TeamInt team);
	public Object switchTeam_Remote(UserInt user, TeamInt team); // TeamInt

	public ArrayList<PhysicalObjectInt> update(TeamInt team);
	public RemoteList update_Remote(TeamInt team); // ArrayList<PhysicalObject>


}
